home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / lib / ubiquity / console-setup / console-setup.postinst next >
Text File  |  2008-10-29  |  4KB  |  166 lines

  1. #!/bin/sh
  2.  
  3. set -e
  4.  
  5. # Source debconf library.
  6. . /usr/share/debconf/confmodule
  7.  
  8. # The same as /usr/bin/which - in order to make this script work
  9. # in environments where "which" is not available
  10. which () {
  11.     local IFS
  12.     IFS=:
  13.     for i in $PATH; do
  14.     if [ -x "$i/$1" ]; then
  15.         echo "$i/$1"
  16.         return 0
  17.     fi
  18.     done
  19.     return 1
  20. }
  21.  
  22. # In order to make this script work in environments where
  23. # "md5sum" is not available
  24. md5sum=`which md5sum`
  25. if [ -z "$md5sum" ]; then
  26.     md5sum=true
  27. fi
  28.  
  29. # In d-i the config script is not executed automatically
  30. if [ -f /var/lib/dpkg/info/console-setup.config ]; then
  31.     . /var/lib/dpkg/info/console-setup.config
  32. fi
  33.  
  34. CONFIGDIR=/etc/console-setup
  35. CONFIGFILE=/etc/default/console-setup
  36.  
  37. if [ "$1" = "configure" ]; then
  38.     
  39.     db_get console-setup/codesetcode
  40.     codeset="$RET"
  41.     db_get console-setup/fontface
  42.     fontface="$RET"
  43.     db_get console-setup/fontsize
  44.     fontsize="$RET"
  45.  
  46.     fontname=$codeset-$fontface$fontsize.psf.gz
  47.     
  48.     if which ckbcomp-mini >/dev/null; then
  49.     charmap=UTF-8
  50.     else
  51.     db_get console-setup/charmap
  52.     charmap="${RET:-UTF-8}"
  53.     fi
  54.  
  55.     db_get console-setup/ttys
  56.     ttys="$RET"
  57.  
  58.  
  59.     db_get console-setup/modelcode
  60.     model="$RET"
  61.  
  62.     db_get console-setup/layoutcode
  63.     layout="$RET"
  64.  
  65.     db_get console-setup/variantcode
  66.     variant="$RET"
  67.  
  68.     db_get console-setup/optionscode
  69.     options="$RET"
  70.  
  71.     if [ "$charmap" != UTF-8 ]; then
  72.     acm=$CONFIGDIR/$charmap.acm.gz
  73.     acm_option="-charmap $charmap"
  74.     else
  75.     acm=''
  76.     acm_option=''
  77.     fi
  78.  
  79.     if [ ! -e $CONFIGFILE ]; then
  80.     cat /usr/share/doc/console-setup/examples/console-setup \
  81.         /usr/share/doc/console-setup-mini/examples/console-setup \
  82.         /usr/share/console-setup-mini/console-setup.proto \
  83.         2>/dev/null >$CONFIGFILE || true
  84.     cat >>$CONFIGFILE <<EOF
  85.  
  86. # Do not update the following md5 sum if you change
  87. # $CONFIGDIR/boottime.kmap.gz and Debconf will not overwrite
  88. # your custom keymap.  Do not update it even if you want to make
  89. # Debconf overwrite it.  Instead simply specify the empty string as
  90. # a md5 sum.
  91.  
  92. BOOTTIME_KMAP_MD5=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  93. EOF
  94.     fi
  95.  
  96.     . $CONFIGFILE || true
  97.  
  98.     if [ "$model" = SKIP ]; then
  99.     BOOTTIME_KMAP_MD5=
  100.     elif \
  101.     [ -z "$BOOTTIME_KMAP_MD5" ] \
  102.     || [ ! -f "$CONFIGDIR/boottime.kmap.gz" ] \
  103.     || echo "$BOOTTIME_KMAP_MD5  $CONFIGDIR/boottime.kmap.gz" \
  104.         | $md5sum -c 2>/dev/null >/dev/null
  105.     then
  106.     if which gzip >/dev/null; then
  107.         ckbcomp $acm_option -model "$model" \
  108.         "$layout" "$variant" "$options" \
  109.         | gzip -9 >$CONFIGDIR/boottime.kmap.gz
  110.     fi
  111.     BOOTTIME_KMAP_MD5=`$md5sum $CONFIGDIR/boottime.kmap.gz | sed 's/ .*//'`
  112.     fi
  113.  
  114.     # Ensure we do not mess up the config file's ownership and permissions.
  115.     cp -a -f $CONFIGFILE $CONFIGFILE.tmp
  116.  
  117.     # If the admin deleted or commented some variables but then set
  118.     # them via debconf, (re-)add them to the conffile.
  119.     for var in \
  120.     ACTIVE_CONSOLES CHARMAP CODESET FONTFACE FONTSIZE \
  121.     XKBMODEL XKBLAYOUT XKBVARIANT XKBOPTIONS BOOTTIME_KMAP_MD5
  122.     do
  123.         if ! grep "^ *${var}=" $CONFIGFILE >/dev/null; then
  124.         echo "${var}=" >>$CONFIGFILE
  125.     fi
  126.     done    
  127.     
  128.     sed \
  129.     -e "s|^ *ACTIVE_CONSOLES=.*|ACTIVE_CONSOLES=\"$ttys\"|" \
  130.     -e "s|^ *CHARMAP=.*|CHARMAP=\"$charmap\"|" \
  131.     -e "s|^ *CODESET=.*|CODESET=\"$codeset\"|" \
  132.     -e "s|^ *FONTFACE=.*|FONTFACE=\"$fontface\"|" \
  133.     -e "s|^ *FONTSIZE=.*|FONTSIZE=\"$fontsize\"|" \
  134.     -e "s|^ *XKBMODEL=.*|XKBMODEL=\"$model\"|" \
  135.     -e "s|^ *XKBLAYOUT=.*|XKBLAYOUT=\"$layout\"|" \
  136.     -e "s|^ *XKBVARIANT=.*|XKBVARIANT=\"$variant\"|" \
  137.     -e "s|^ *XKBOPTIONS=.*|XKBOPTIONS=\"$options\"|" \
  138.     -e "s|^ *BOOTTIME_KMAP_MD5=.*|BOOTTIME_KMAP_MD5=\"$BOOTTIME_KMAP_MD5\"|" \
  139.     <$CONFIGFILE >$CONFIGFILE.tmp
  140.     
  141.     mv -f $CONFIGFILE.tmp $CONFIGFILE
  142. fi
  143.  
  144. # In d-i debhelper doesn't use /etc/init.d scripts :-)
  145. if [ -f /var/lib/dpkg/info/console-setup.config ]; then
  146.     if [ -d /lib/debian-installer ]; then
  147.     setupcon --force --save
  148.     else
  149.     # setting the font corrupts X
  150.     setupcon --save-only
  151.     setupcon --force -k
  152.     cat >&2 <<EOF
  153. Your console font configuration will be updated the next time your system
  154. boots. If you want to update it now, run 'setupcon' from a virtual console.
  155. EOF
  156.     fi
  157. fi
  158.  
  159. #DEBHELPER#
  160.  
  161. if type update-initramfs >/dev/null 2>&1; then
  162.     : update-initramfs -u
  163. fi
  164.  
  165. exit 0
  166.